package com.itc.dispatch.domain.dto;

import com.itc.common.core.validate.Add;
import com.itc.common.core.validate.Update;
import com.itc.dispatch.domain.AlarmRule;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;

@Data
public class AlarmConfigDto implements Serializable {

    /**
     * 告警管理id主键
     */

    @ApiModelProperty(value = "告警管理id主键",required = true)
    @NotNull(message = "告警管理id主键不能为空",groups = {Update.class})
    private Long id;

    /**
     * 告警类型
     */
    @ApiModelProperty(value = "告警类型",required = true)
    @NotBlank(message = "告警类型不能为空",groups = {Add.class,Update.class})
    private String alarmType;

    /**
     * 告警名称
     */
    @ApiModelProperty(value = "告警名称",required = true)
    @NotBlank(message = "告警名称不能为空",groups = {Add.class,Update.class})
    private String alarmName;

    /**
     * 启用状态
     */
    @ApiModelProperty("启用状态 0已关闭 1正常")
    @NotNull(message = "启用状态不能为空",groups ={Add.class,Update.class} )
    private Integer status;

    /**
     * 告警自动确认时间单位 0/毫秒 1/秒 2/分 3/时
     */
    @ApiModelProperty("告警自动确认时间单位 0/毫秒 1/秒 2/分 3/时")
    @NotNull(message = "告警自动确认时间单位不能为空",groups ={Add.class,Update.class} )
    private Integer alarmTimeUnit;

    /**
     * 时间值
     */
    @ApiModelProperty("时间值")
    @NotNull(message = "时间值不能为空",groups ={Add.class,Update.class} )
    private Integer alarmTimeValue;

    /**
     * 是否在重要告警中展示
     */
    @ApiModelProperty("是否在重要告警中展示 0_否 1_是")
    @NotNull(message = "是否在重要告警中展示不能为空",groups ={Add.class,Update.class} )
    private Integer isImport;

    /**
     * 是否为常用告警
     */
    @ApiModelProperty("是否为常用告警 0_否 1_是")
    @NotNull(message = "是否为常用告警不能为空",groups ={Add.class,Update.class} )
    private Integer isNormal;

    /**
     * 关联的流程id（多个用“,”分隔）
     */
    @ApiModelProperty("关联的流程id（多个用“,”分隔）")
    @NotBlank(message = "关联的流程id不为空",groups ={Add.class,Update.class} )
    private String flowIds;

    /**
     * 流程节点操作部门-席位（多个用“,”分隔）
     */
    @ApiModelProperty("流程节点操作部门-席位（多个用“,”分隔）")
//    @NotBlank(message = "流程节点操作部门-席位（多个用“,”分隔）不能为空",groups ={Add.class,Update.class} )
    private String flowDeptIds;

    /**
     * 关联警告id（多个用“,”分隔）
     */
    @ApiModelProperty("关联警告id（多个用“,”分隔）")
    @NotBlank(message = "关联警告id不为空",groups ={Add.class,Update.class} )
    private String alarmIds;

    /**
     * 确定部门id（多个用“,”分隔）
     */
    @ApiModelProperty("确定部门id（多个用“,”分隔）")
    @NotBlank(message = "确定部门id不为空",groups ={Add.class,Update.class} )
    private String confirmIds;

    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    private String createDate;

    /**
     * 告警规则
     */
    @ApiModelProperty(value = "告警规则",required = true)
    @NotNull(message = "规则不能为空",groups ={Add.class,Update.class} )
    @Valid
    private List<AlarmRule> alarmRules;

















}
